home *** CD-ROM | disk | FTP | other *** search
- /********************************************************* DEFINITION
- DATE: 9/16/93
- AUTHOR: Eric R. Rosé
-
- CLASS: CPeriodicTask
-
- SUPERCLASS: CObject
-
- This class is an abstract class for objects which
- perform some periodic action.
-
- ********************************************************************/
-
- #pragma once
-
- #include <CPPObject.h>
-
- class CPPTaskManager;
-
- typedef void (*CompletionProc)(CPPObject *TheTask);
-
- class CPPPeriodicTask : public CPPObject {
-
- public:
- Boolean isRunning;
-
- CPPPeriodicTask (CPPTaskManager *TaskManager,
- long minPeriod = 120,
- Boolean deleteWhenCompleted = TRUE);
- ~CPPPeriodicTask (void);
-
- virtual char *ClassName (void);
-
- Boolean hasCompleted;
- Boolean deleteWhenDone;
-
- long GetPeriod (void);
- long GetTimesCalled (void);
- void SetPeriod (long newPeriod);
- OSErr TaskError (void);
- void SetCompletionProc (CompletionProc NewProc);
-
- virtual Boolean NeedsToRun (void);
- virtual void DoPeriodicAction (void);
- virtual void DoCompletedAction (void);
-
- protected:
- OSErr callResult;
- CPPTaskManager *ourManager;
- CompletionProc completion;
-
- private:
- long minimumPeriod;
- long lastCalled;
- long timesCalled;
- };
-
-